//package com.george.payment.wechat.config;
//
//import lombok.extern.slf4j.Slf4j;
//import org.springframework.context.annotation.Bean;
//import org.springframework.context.annotation.Configuration;
//import org.springframework.core.io.ClassPathResource;
//
//import javax.annotation.Resource;
//
///**
// * @title: WeiXinConfigSdkVersion.java
// * @description: 微信支付配置类（基于 wechatpay-java）
// * @author: George
// * @date: 2023/6/28 11:21
// */
//@Slf4j
//@Configuration
//public class WeiXinConfigSdkVersion {
//
//    @Resource
//    private WeixinPayProperties weixinPayProperties;
//    private static Config config = null;
//
//    public Config getWeiXinConfig() {
//        try {
//            //将相对路径转换为绝对路径
//            String privateKeyPath = weixinPayProperties.getPrivateKeyPath();
//            if (privateKeyPath.startsWith("classpath:")) {
//                privateKeyPath = privateKeyPath.replace("classpath:", "");
//                ClassPathResource resource = new ClassPathResource(privateKeyPath);
//                String absolutePath = resource.getFile().getAbsolutePath();
//                weixinPayProperties.setPrivateKeyPath(absolutePath);
//            }
//            if (config == null) {
//                synchronized (WeiXinConfig.class) {
//                    if (config == null) {
//                        config = new RSAAutoCertificateConfig.Builder()
//                                .merchantId(weixinPayProperties.getMerchantId())
//                                .privateKeyFromPath(weixinPayProperties.getPrivateKeyPath())
//                                .merchantSerialNumber(weixinPayProperties.getMerchantSerialNumber())
//                                .apiV3Key(weixinPayProperties.getApiV3key())
//                                .build();
//                    }
//                }
//            }
//        } catch (Exception ex) {
//            ex.printStackTrace();
//            log.error("加载微信支付私钥证书发生异常，异常信息：{}", ex.getMessage());
//        }
//        return config;
//    }
//
//
//    @Bean
//    public NativePayService nativePayService() {
//        Config config = getWeiXinConfig();
//        if (config != null) {
//            // 构建service
//            NativePayService service = new NativePayService.Builder().config(config).build();
//            return service;
//        } else {
//            log.error("加载微信支付私钥证书等配置为空！");
//            return null;
//        }
//    }
//
//    @Bean
//    public JsapiServiceExtension jsapiServiceExtension() {
//        Config config = getWeiXinConfig();
//        if (config != null) {
//            // 构建service
//            JsapiServiceExtension service = new JsapiServiceExtension.Builder().config(config).build();
//            return service;
//        } else {
//            log.error("加载微信支付私钥证书等配置为空！");
//            return null;
//        }
//    }
//}
